package com.example.app.service;

import com.example.app.dto.*;
import com.example.app.entity.User;
import com.example.app.exception.UserAlreadyExistsException;
import com.example.app.exception.UserNotFoundException;

public interface UserService {
    User registerUser(RegisterRequest request) throws UserAlreadyExistsException;
    User authenticateUser(LoginRequest request) throws UserNotFoundException;
    void deleteUser(Long userId) throws UserNotFoundException;
    void updatePassword(Long userId, PasswordUpdateRequest request) throws UserNotFoundException;
    void updateName(Long userId, NameUpdateRequest request) throws UserNotFoundException;
    UserProfileDTO getUserProfile(Long userId) throws UserNotFoundException;
    UserProfileDTO updateUserProfile(Long userId, UserProfileDTO request) throws UserNotFoundException;
}